A client device can be used to interact with an application operating at a host device during a remote desktop session via a communication link (e.g., a wireless connection, a remote connection). The host device can be configured to define a stream of screen images (e.g., screen updates) representing the interactions of the client device with the application, and can send the stream of screen images to the client device as the interactions are occurring during the remote desktop session. The interactions, which can be triggered by a user, can be represented by input values (e.g., binary input values) from a user interface device (e.g., a keyboard device, a mouse device) of the client device. The input values can be sent in discrete packets from the client device to the host device as the interactions with the application are triggered by a user.
When input values of the interactions sent over a communication link from the client device to the host device are delayed, processing of the input values to produce screen updates at the host, and sending of the screen updates from the host device to the client device will also be delayed. This round-trip latency (or delay) between the client device and the host device can result in a slow and undesirable user experience during a remote desktop session. The round-trip latency can be further exacerbated by reliable communication protocols that require, for example, delivery confirmation for each input value sent from the client device to the host device. Delivery confirmation can be implemented to ensure that input values are not lost—the loss of input values can also cause an undesirable user experience when inputs triggered by the user at the client device are not properly received by the host device. Thus, a need exists for systems, methods, and apparatus to address the shortfalls of present technology and to provide other new and innovative features.